home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #3 / Amiga Plus CD - 2002 - No. 03.iso / AmiSoft / Util / Misc / Reportplus.lha / reportplus / source / rp.h < prev    next >
C/C++ Source or Header  |  2003-02-14  |  19KB  |  551 lines

  1. /* types */
  2.  
  3. #define AUTO            auto    /* automatic variables */
  4. #define AGLOBAL         ;       /* global (project-scope) */
  5. #define MODULE        static    /* external static (file-scope) */
  6. #define PERSIST        static    /* internal static (function-scope) */
  7. typedef signed char    ABOOL;    /* 8-bit signed quantity (replaces BOOL) */
  8. typedef signed char    SBYTE;    /* 8-bit signed quantity (replaces Amiga BYTE) */
  9. typedef signed short    SWORD;    /* 16-bit signed quantity (replaces Amiga WORD) */
  10. typedef signed long    SLONG;    /* 32-bit signed quantity (same as LONG) */
  11. #define elif        else if
  12.  
  13. #define ASM             __asm
  14. #define REG(x)          register __ ## x
  15.  
  16. #ifdef __STORM__
  17.     #define __inline
  18.     #define chip
  19.     #define EXIT_SUCCESS  0
  20.     #define EXIT_FAILURE 20
  21.     AGLOBAL ULONG stcl_d(STRPTR out, ULONG val);
  22.     AGLOBAL ULONG stcl_h(STRPTR out, ULONG val);
  23. #endif
  24. #ifdef LATTICE
  25.     #define CONST_STRPTR STRPTR
  26. #endif
  27.  
  28. // defined by AmigaOS are: IMPORT, UBYTE, UWORD, ULONG.
  29.  
  30. #define STATUS_READY    0
  31. #define STATUS_BUSY     1
  32. #define STATUS_STOPPING 2
  33.  
  34. #define BARUPDATES      50
  35.  
  36. // page 1...
  37. #define GID_S_LY1 0
  38. #define GID_S_ST1 1
  39. #define GID_S_ST2 2
  40. #define GID_S_ST3 3
  41. #define GID_S_ST4 4
  42. #define GID_S_ST5 5
  43. #define GID_S_ST6 6
  44. #define GIDS_S    GID_S_ST6
  45.  
  46. // page 11...
  47. #define  GID_1_LY2  0  // root layout
  48. #define  GID_1_LB1  1  // listbrowser 1
  49. #define  GID_1_ST1  2  // string 1
  50. #define  GID_1_ST2  3  // string 2
  51. #define  GID_1_ST3  4  // string 3
  52. #define  GID_1_ST4  5  // string 4
  53. #define  GID_1_ST5  6  // string 5
  54. #define  GID_1_ST6  7  // string 6
  55. #define  GID_1_ST7  8  // string 7
  56. #define  GID_1_ST8  9  // string 8
  57. #define  GID_1_ST9  10 // string 9
  58. #define  GID_1_ST10 11 // string 10
  59. #define  GID_1_ST11 12 // string 11 (chip RAM)
  60. #define  GID_1_ST12 13 // string 12 (fast RAM)
  61. #define  GID_1_ST13 14 // string 13 (hard disk controller)
  62. #define  GID_1_ST14 15 // string 14 (expansion cards)
  63. #define  GID_1_BU2  16 // button 2 (sender...)
  64. #define  GID_1_BU3  17 // button 3 (other page)
  65. #define  GID_1_BU4  18 // button 4 (program pathname ASL)
  66. #define  GID_1_CH1  19 // chooser 1
  67. #define  GID_1_CH2  20 // chooser 2
  68. #define  GID_1_CH3  21 // chooser 3
  69. #define  GID_1_CH4  22 // chooser 4
  70. #define  GID_1_CH5  23 // chooser 5
  71. #define  GID_1_IN1  24 // integer 1 (floppies)
  72. // page 12...
  73. #define  GID_1_LY1  25 // root layout
  74. #define  GID_1_BU1  26 // button 1 (other page)
  75. #define  GID_1_TE1  27 // text editor 1
  76. #define  GID_1_TE2  28 // text editor 2
  77. #define  GID_1_TE3  29 // text editor 3
  78. #define  GID_1_TE4  30 // text editor 4
  79. #define  GID_1_TE5  31 // text editor 5
  80. #define  GIDS_1    GID_1_TE5
  81.  
  82. // page 21
  83. #define  GID_2_LY1  0  // root layout
  84. #define  GID_2_ST1  1  // string 1
  85. #define  GID_2_ST2  2  // string 2
  86. #define  GID_2_ST3  3  // string 3
  87. #define  GID_2_ST4  4  // string 4
  88. #define  GID_2_ST5  5  // string 5
  89. #define  GID_2_ST6  6  // string 6
  90. #define  GID_2_ST7  7  // string 7
  91. #define  GID_2_TE1  8  // text editor 1 (long description)
  92. #define  GID_2_LB1  9  // listbrowser 1 (main dir)
  93. #define  GID_2_LB2  10 // listbrowser 2 (sub dir)
  94. #define  GIDS_2     GID_2_LB2
  95.  
  96. // page 31...
  97. #define  GID_3_LY1  0  // root layout
  98. #define  GID_3_XX1  1  // anything 1
  99. #define  GID_3_BU1  2  // button 1
  100. #define  GID_3_BU2  3  // button 2
  101. #define  GID_3_ST1  4  // string 1
  102. #define  GID_3_CB1  5  // checkbox 1
  103. #define  GID_3_CB2  6  // checkbox 2
  104. #define  GID_3_CB3  7  // checkbox 3
  105. #define  GID_3_CB4  8  // checkbox 4
  106. #define  GID_3_CB5  9  // checkbox 5
  107. #define  GID_3_CB6  10 // checkbox 6
  108. #define  GID_3_CB7  11 // checkbox 7
  109. #define  GID_3_CB8  12 // checkbox 8
  110. #define  GID_3_CB9  13 // checkbox 9
  111. // page 32...
  112. #define  GID_3_LY2  14 // root layout
  113. #define  GIDS_3     GID_3_LY2
  114.  
  115. #define  GID_4_LY1   0 // root layout
  116. #define  GID_4_CH1   1 // chooser 1  (icon type)
  117. #define  GID_4_CB1   2 // checkbox 1 (optimize?)
  118. #define  GID_4_CB2   3 // checkbox 2 (planar?)
  119. #define  GID_4_ST1   4 // string 1   (pathname(s))
  120. #define  GID_4_ST2   5 // string 2   (status)
  121. #define  GID_4_BU1   6 // button 1   (pathname(s) ASL)
  122. #define  GID_4_BU3   7 // button 3   (process)
  123. #define  GID_4_BU4   8 // button 4   (stop)
  124. #define  GIDS_4     GID_4_BU4
  125.  
  126. #define  GID_5_LY1   0 // root layout
  127. #define  GID_5_ST1   1 // string   1 (card)
  128. #define  GID_5_ST2   2 // string   2 (manufacturer)
  129. #define  GID_5_ST3   3 // string   3 (product)
  130. #define  GID_5_ST4   4 // string   4 (description)
  131. #define  GID_5_ST5   5 // string   5 (configdev)
  132. #define  GID_5_ST6   6 // string   6 (driver)
  133. #define  GID_5_ST7   7 // string   7 (serial number)
  134. #define  GID_5_ST8   8 // string   8 (board addr)
  135. #define  GID_5_ST9   9 // string   9 (board size)
  136. #define  GID_5_ST10 10 // string  10 (slot addr)
  137. #define  GID_5_ST11 11 // string  11 (slot size)
  138. #define  GID_5_ST12 12 // string  12 (CPU)
  139. #define  GID_5_ST13 13 // string  13 (FPU)
  140. #define  GID_5_BU1  14 // button   1 (previous card)
  141. #define  GID_5_BU2  15 // button   2 (next card)
  142. #define  GID_5_CB1  16 // checkbox 1 (internal)
  143. #define  GID_5_CB2  17 // checkbox 2 (official)
  144. #define  GID_5_CH1  18 // chooser  1 (precedence)
  145. #define  GID_5_IN1  19 // integer  1 (manufacturer ID)
  146. #define  GID_5_IN2  20 // integer  2 (product ID)
  147. #define  GIDS_5     GID_5_IN2
  148.  
  149. #define  GID_6_LY1  0 // root layout
  150. #define  GID_6_ST1  1 // string 1
  151. #define  GID_6_ST2  2 // string 2
  152. #define  GID_6_ST3  3 // string 3
  153. #define  GID_6_ST4  4 // string 4
  154. #define  GID_6_ST5  5 // string 5
  155. #define  GID_6_ST6  6 // string 6
  156. #define  GID_6_BU1  7 // button 1   (pathname(s) ASL)
  157. #define  GID_6_CB1  8 // checkbox 1 (raw view only?)
  158. #define  GID_6_CB2  9 // checkbox 2
  159. #define  GID_6_CB3 10 // checkbox 3
  160. #define  GID_6_CB4 11 // checkbox 4
  161. #define  GID_6_CB5 12 // checkbox 5
  162. #define  GID_6_CB6 13 // checkbox 6
  163. #define  GID_6_CB7 14 // checkbox 7
  164. #define  GID_6_CB8 15 // checkbox 8
  165. #define  GID_6_CB9 16 // checkbox 9
  166. #define  GID_6_LB1 17 // listbrowser 1
  167. #define  GID_6_LB2 18 // listbrowser 2
  168. #define  GIDS_6     GID_6_LB2
  169.  
  170. #define  GID_7_LY1  0 // root layout
  171. #define  GID_7_RA1  1 // radio 1    (source)
  172. #define  GID_7_RA2  2 // radio 2    (destination)
  173. #define  GID_7_CB1  3 // checkbox 1 (detabulate?)
  174. #define  GID_7_CB2  4 // checkbox 2 (unwrap words?)
  175. #define  GID_7_IN1  5 // integer 1  (tab size)
  176. #define  GID_7_ST1  6 // string 1   (pathname(s))
  177. #define  GID_7_ST2  7 // string 2   (status)
  178. #define  GID_7_BU1  8 // button 1   (pathname(s) ASL)
  179. #define  GID_7_BU3  9 // button 3   (process)
  180. #define  GID_7_BU4 10 // button 4   (stop)
  181. #define  GIDS_7    GID_7_BU4
  182.  
  183. #define  GID_8_LY1  0  // root layout
  184. #define  GID_8_ST1  1  // string 1 (path)
  185. #define  GID_8_ST2  2  // string 2 (log file)
  186. #define  GID_8_ST3  3  // string 3 (capacity)
  187. #define  GID_8_ST4  4  // string 4 (free)
  188. #define  GID_8_ST5  5  // string 5 (total)
  189. #define  GID_8_ST6  6  // string 6 (files)
  190. #define  GID_8_ST7  7  // string 7 (dirs)
  191. #define  GID_8_ST8  8  // string 8 (block size)
  192. #define  GID_8_BU1  9  // button 1 (path ASL)
  193. #define  GID_8_BU3 10  // button 3 (log file ASL)
  194. #define  GID_8_BU4 12  // button 4 (update)
  195. #define  GID_8_BU5 13  // button 5 (stop)
  196. #define  GID_8_BU6 14  // button 6 (root)
  197. #define  GID_8_BU7 15  // button 7 (parent)
  198. #define  GID_8_LB2 16  // listbrowser 2 (path sizes)
  199. #define  GID_8_CB1 17  // checkbox 1 (log to file?)
  200. #define  GID_8_CB2 18  // checkbox 2 (include slack?)
  201. #define  GID_8_CB3 19  // checkbox 3 (fix protection bits?)
  202. #define  GID_8_CB4 20  // checkbox 4 (show subdirectories?)
  203. #define  GID_8_CB5 21  // checkbox 5 (show files?)
  204. #define  GID_8_CH1 22  // chooser 1 (view as)
  205. #define  GID_8_FG1 23  // fuel gauge 1 (status)
  206. #define  GIDS_8    GID_8_FG1
  207.  
  208. #define GID_9_LY1  0 // root layout
  209. #define GID_9_CB1  1 // checkbox 1
  210. #define GID_9_CB2  2 // checkbox 2
  211. #define GID_9_CB3  3 // checkbox 3
  212. #define GID_9_CB4  4 // checkbox 4
  213. #define GID_9_CB5  5 // checkbox 5
  214. #define GID_9_CB6  6 // checkbox 6
  215. #define GID_9_CB7  7 // checkbox 7
  216. #define GID_9_BU1  9 // button 1   (revert)
  217. #define GID_9_BU2 10 // button 2   (write)
  218. #define GID_9_IN1 11 // integer 1  (SCSI_HOST_ID)
  219. #define GID_9_SP1 12 // space 1
  220. #define GIDS_9     GID_9_SP1
  221.  
  222. #define GID_10_LY1  0 // root layout
  223. #define GID_10_CB1  1 // checkbox 1   (ok)
  224. #define GID_10_CB2  2 // checkbox 2   (changed)
  225. #define GID_10_CB3  3 // checkbox 3   (3rd-party)
  226. #define GID_10_CB4  4 // checkbox 4   (missing)
  227. #define GID_10_CB5  5 // checkbox 5   (check versions?)
  228. #define GID_10_CB6  6 // checkbox 6   (check dates/times?)
  229. #define GID_10_CB7  7 // checkbox 7   (log to file?)
  230. #define GID_10_CB8  8 // checkbox 8   (check sizes?)
  231. #define GID_10_ST1  9 // string 1     (logfile pathname)
  232. #define GID_10_ST2 10 // string 2     (snapshot pathname)
  233. #define GID_10_ST3 11 // string 3     (base path)
  234. #define GID_10_BU1 12 // button 1     (pathname ASL)
  235. #define GID_10_BU2 13 // button 2     (update)
  236. #define GID_10_BU3 14 // button 3     (stop)
  237. #define GID_10_BU4 15 // button 4     (snapshot ASL)
  238. #define GID_10_BU5 16 // button 5     (base path ASL)
  239. #define GID_10_LB1 17 // listbrowser  (results)
  240. #define GID_10_FG1 18 // fuel gauge 1 (status)
  241. #define GID_10_RA1 19 // radio 1      (mode)
  242. #define GIDS_10    GID_10_RA1
  243.  
  244. #define BUG        0
  245. #define COM        1
  246. #define ENH        2
  247.  
  248. #define FONTX      8
  249. #define FONTY      8
  250.  
  251. // ASCII values (vanillakey)
  252. #define TAB        9 /* horizontal tab */
  253. #define LF        10 /* linefeed */
  254. #define CR        13 /* carriage return */
  255. #define ESCAPE    27
  256. #define QUOTE     34 /* " */
  257.  
  258. #define FUNCTIONS 10
  259.  
  260. // Scancodes (rawkey)
  261. #define SCAN_GRAVE   0
  262. #define SCAN_1       1
  263. #define SCAN_8       8
  264.  
  265. // Q, J, Z undefined.
  266. #define SCAN_W      17
  267. #define SCAN_E      18
  268. #define SCAN_R      19
  269. #define SCAN_T      20
  270. #define SCAN_Y      21
  271. #define SCAN_U      22
  272. #define SCAN_I      23
  273. #define SCAN_O      24
  274. #define SCAN_P      25
  275. #define SCAN_A      32
  276. #define SCAN_S      33
  277. #define SCAN_D      34
  278. #define SCAN_F      35
  279. #define SCAN_G      36
  280. #define SCAN_H      37
  281. #define SCAN_K      39
  282. #define SCAN_L      40
  283. #define SCAN_X      50
  284. #define SCAN_C      51
  285. #define SCAN_V      52
  286. #define SCAN_B      53
  287. #define SCAN_N      54
  288. #define SCAN_M      55
  289. #define SCAN_PERIOD 57
  290. #define SCAN_SLASH  58
  291. #define SCAN_ESCAPE 69
  292. #define SCAN_UP     76
  293. #define SCAN_DOWN   77
  294. #define SCAN_HELP   95
  295.  
  296. #define GREY              0
  297. #define BLACK             1
  298. #define WHITE             2
  299. #define RED               3
  300. #define BLUE              4
  301. #define LIGHTGREY         5
  302. #define ORANGE            6
  303. #define YELLOW            7
  304. #define LIGHTGREEN       14
  305.  
  306. #define TITLEBARTEXT      "Report+ 5.65"
  307.  
  308. #define FIRSTQUALIFIER 0x60
  309. #define LASTQUALIFIER  0x67
  310. #define KEYUP          0x80 /* key release */
  311.  
  312. #define MN_PROJECT        0
  313. #define MN_TOOLS          1
  314. #define MN_HELP           2
  315.  
  316. #define IN_NEW            0
  317. #define IN_OPEN           1
  318. #define IN_SAVE           3
  319. #define IN_SAVEAS         4
  320. #define IN_QUIT           6
  321.  
  322. #define IN_ABOUT          0
  323.  
  324. #define IN_MAINMENU       0
  325. #define IN_F1             2
  326. #define IN_F2             3
  327. #define IN_F9             4
  328. #define IN_F5             6
  329. #define IN_F6             7
  330. #define IN_F4             9
  331. #define IN_F7            10
  332. #define IN_F8            12
  333. #define IN_F10           13
  334. #define IN_F3            15
  335.  
  336. AGLOBAL void report1(void);
  337. AGLOBAL void report_gt_loop(ULONG class, struct Gadget* addr, UWORD code, UWORD qual);
  338. AGLOBAL void report_ra_loop(ULONG gid);
  339. AGLOBAL void report_exit(void);
  340. AGLOBAL void report_init(void);
  341. AGLOBAL void report_close(void);
  342. AGLOBAL void config(void);
  343. AGLOBAL void newreport(ABOOL display);
  344. AGLOBAL void openreport(void);
  345. AGLOBAL void savereport(ABOOL saveas);
  346. AGLOBAL void loadreport(void);
  347. AGLOBAL void getversion(STRPTR filename, STRPTR output);
  348. AGLOBAL void readreportgadgets(void);
  349.  
  350. AGLOBAL void aminet_init(void);
  351. AGLOBAL void aminet_die(void);
  352. AGLOBAL void aminet1(void);
  353. AGLOBAL void aminet_loop(ULONG gid);
  354. AGLOBAL void aminet_exit(void);
  355. AGLOBAL void newaminet(ABOOL display);
  356. AGLOBAL void openaminet(void);
  357. AGLOBAL void saveaminet(ABOOL saveas);
  358. AGLOBAL void loadaminet(void);
  359. AGLOBAL ULONG Hook2Func(struct Hook *h, VOID *o, VOID *msg);
  360. AGLOBAL void readaminetgadgets(void);
  361.  
  362. AGLOBAL void acse1(void);
  363. AGLOBAL void acse2(void);
  364. AGLOBAL void acse3(void);
  365. AGLOBAL void acse_exit(void);
  366. AGLOBAL void decrypt(void);
  367. AGLOBAL void acse_loop(ULONG gid);
  368. AGLOBAL ULONG Hook3Func(struct Hook *h, VOID *o, VOID *msg);
  369. AGLOBAL void acse_closewindow(void);
  370.  
  371. AGLOBAL void icon1(void);
  372. AGLOBAL void icon2(void);
  373. AGLOBAL void iconconvert(ABOOL gui);
  374. AGLOBAL void icon_loop(ULONG gid);
  375. AGLOBAL void icon_do(void);
  376. AGLOBAL void icon_die(void);
  377. AGLOBAL ULONG Hook4Func(struct Hook* h, VOID* o, VOID* msg);
  378.  
  379. AGLOBAL void manuf1(void);
  380. AGLOBAL void manuf_loop(ULONG gid);
  381. AGLOBAL void manuf_config(void);
  382. AGLOBAL void manuf_die(void);
  383. AGLOBAL ULONG Hook5Func(struct Hook *h, VOID *o, VOID *msg);
  384.  
  385. AGLOBAL void iff1(void);
  386. AGLOBAL void iff_loop(ULONG gid);
  387. AGLOBAL void iff_config(void);
  388. AGLOBAL void iff_die(void);
  389. AGLOBAL void iff_init(void);
  390. AGLOBAL void iff_exit(void);
  391. AGLOBAL ULONG Hook6Func(struct Hook *h, VOID *o, VOID *msg);
  392.  
  393. AGLOBAL void eol1(void);
  394. AGLOBAL void eol2(void);
  395. AGLOBAL void eolconvert(ABOOL gui);
  396. AGLOBAL void eol_loop(ULONG gid);
  397. AGLOBAL void eol_die(void);
  398. AGLOBAL ULONG Hook7Func(struct Hook *h, VOID *o, VOID *msg);
  399.  
  400. AGLOBAL void size_init(void);
  401. AGLOBAL void size_die(void);
  402. AGLOBAL void size1(void);
  403. AGLOBAL void updatesize(void);
  404. AGLOBAL void size_loop(ULONG gid);
  405. AGLOBAL void size_exit(void);
  406. AGLOBAL ULONG Hook8Func(struct Hook *h, VOID *o, VOID *msg);
  407.  
  408. AGLOBAL void batt1(void);
  409. AGLOBAL void batt_loop(ULONG gid);
  410. AGLOBAL void batt_open(void);
  411. AGLOBAL void batt_save(ABOOL saveas);
  412. AGLOBAL void writebatt(ABOOL verify);
  413. AGLOBAL ULONG Hook9Func(struct Hook *h, VOID *o, VOID *msg);
  414.  
  415. AGLOBAL void files1(void);
  416. AGLOBAL void files_loop(ULONG gid);
  417. AGLOBAL void files_init(void);
  418. AGLOBAL void files_exit(void);
  419. AGLOBAL void files_die(void);
  420. AGLOBAL ULONG Hook10Func(struct Hook *h, VOID *o, VOID *msg);
  421.  
  422. // rp.c
  423. AGLOBAL void getdate(void);
  424. AGLOBAL void loop(void);
  425. AGLOBAL void rq(STRPTR text);
  426. AGLOBAL void cleanexit(SBYTE rc);
  427. AGLOBAL void closewindow(void);
  428. AGLOBAL void FreeNameNodes(struct List* ListPtr);
  429. AGLOBAL ABOOL asl(STRPTR pattern);
  430. AGLOBAL void readordie(STRPTR pathname);
  431. AGLOBAL void writeout(STRPTR pathname); // remember write() is reserved
  432. AGLOBAL ABOOL readin(STRPTR pathname);
  433. AGLOBAL void append(STRPTR pathname);
  434. AGLOBAL void clearlist(struct List*);
  435. AGLOBAL void AddNameToTail(struct List* ListPtr, STRPTR name);
  436. AGLOBAL void parse(STRPTR terminator);
  437. AGLOBAL void parsetoend(void);
  438. AGLOBAL ABOOL saveasl(STRPTR message, STRPTR pattern);
  439. AGLOBAL void handlemenus(UWORD code);
  440. AGLOBAL void lockscreen(void);
  441. AGLOBAL void unlockscreen(void);
  442. AGLOBAL void multiasl(STRPTR pattern);
  443. AGLOBAL ABOOL convert(ABOOL gui);
  444. AGLOBAL void checkabort(ABOOL gui);
  445. AGLOBAL void InitHook(struct Hook* hook, ULONG (*func)(), void* data);
  446. AGLOBAL ULONG Hook0Func(struct Hook* h, VOID* o, VOID* msg);
  447. AGLOBAL ULONG ASM hookEntry(REG(a0) struct Hook *h, REG(a2) VOID *o, REG(a1) VOID *msg);
  448. AGLOBAL void helpabout(void);
  449. AGLOBAL void clearreactionlist(struct List* ListPtr);
  450. AGLOBAL void openwindow(void);
  451. AGLOBAL ABOOL ra_checkbreak(void);
  452. AGLOBAL void sender(void);
  453. AGLOBAL void setbar(ULONG max);
  454. AGLOBAL ABOOL dirasl(void);
  455. AGLOBAL void comma(ULONG value, STRPTR commastring);
  456. AGLOBAL ULONG SenderHookFunc(struct Hook *h, VOID *o, VOID *msg);
  457. AGLOBAL void addreactionnode(struct List* ListPtr, STRPTR text);
  458. AGLOBAL void AddPathnameNode(struct List* ListPtr, STRPTR name);
  459. AGLOBAL void FreePathnameNodes(struct List* ListPtr);
  460.  
  461. #define MEDFIELD         32
  462. #define LONGFIELD        64
  463. #define VLONGFIELD      256
  464. #define PATHNAMEFIELD   256
  465. #define LONGESTFIELD  16536
  466.  
  467. AGLOBAL struct SharedStruct
  468. {   UWORD function;
  469.     TEXT  thisfile[VLONGFIELD + 1], /* <= 254 characters per pathname */
  470.           thatfile[VLONGFIELD + 1],
  471.           pathname[VLONGFIELD + 1];
  472. };
  473.  
  474. /* struct NameNode is simply an extended Node structure: a Node structure
  475. followed by 96 bytes which hold the name of the node. This is so that the
  476. NameNode structure can hold everything relevant to the node. */
  477. AGLOBAL struct NameNode
  478. {   struct Node nn_Node;
  479.     TEXT        nn_Data[96];
  480. };
  481. AGLOBAL struct PathnameNode
  482. {   struct Node Node;
  483.     TEXT        pathname[PATHNAMEFIELD + 1];
  484.     // Used to hold complete pathnames.
  485. };
  486. AGLOBAL struct ReportStruct
  487. {   ULONG floppies, type, severity, subsystem, agnus, denise, cpu, model;
  488.     TEXT     chipram[5],
  489.              fastram[5],
  490.                 hard[MEDFIELD + 1],
  491.                debug[LONGFIELD + 1],
  492.            developer[LONGFIELD + 1],
  493.            expansion[LONGFIELD + 1],
  494.              summary[LONGFIELD + 1],
  495.                   ks[6],
  496.                   wb[6],
  497.                   pv[LONGFIELD + 1],
  498.                   pp[LONGFIELD + 1],
  499.            thirdname[MEDFIELD + 1],
  500.             thirdver[MEDFIELD + 1],
  501.           thirdmanuf[MEDFIELD + 1],
  502.             lastname[MEDFIELD + 1],
  503.            firstname[MEDFIELD + 1],
  504.              company[MEDFIELD + 1],
  505.                phone[MEDFIELD + 1],
  506.                email[MEDFIELD + 1],
  507.                refer[VLONGFIELD + 1],
  508.              referid[VLONGFIELD + 1],
  509.                 path[VLONGFIELD + 1],
  510.               config[VLONGFIELD + 1],
  511.            textfield[6][4096],
  512.               output[VLONGFIELD + 1];
  513. };
  514. AGLOBAL struct AminetStruct
  515. {   TEXT  amishort[41], // `short' is a reserved keyword, of course
  516.           uploader[41],
  517.           author[41],
  518.           requires[41],
  519.           version[41],
  520.           distribution[41],
  521.           type[12], // ____/_____
  522.           replaces[41],
  523.           output[VLONGFIELD + 1],
  524.           textfield[4096];
  525.     ULONG maintype,
  526.           subtype;
  527. };
  528. AGLOBAL struct IFFStruct
  529. {   ULONG cd, rkm, obsolete, private, proposal, reserved, standard, unregistered, raw;
  530.     TEXT  pathname[PATHNAMEFIELD + 1];
  531. };
  532. AGLOBAL struct SizeStruct
  533. {   ULONG slacktotal, unslacktotal, free, capacity, blocksize, view,
  534.           numfiles, numdirs,
  535.           log, slack, fixprot; // these three are really booleans
  536.     TEXT  oldpath[PATHNAMEFIELD + 1], path[PATHNAMEFIELD + 1], logfile[PATHNAMEFIELD + 1];
  537. };
  538. AGLOBAL struct FilesStruct
  539. {   ULONG show[4], // anything we want to use GetAttr() with must be ULONG
  540.           log, checkversion, checkdatetime, checksize,
  541.           entries, mode;
  542.     TEXT  logfile[PATHNAMEFIELD + 1],
  543.           snapshot[PATHNAMEFIELD + 1],
  544.           basepath[PATHNAMEFIELD + 1];
  545. };
  546. AGLOBAL struct IconStruct
  547. {   ULONG optimize, planar, // these must be ULONG not ABOOL nor BOOL!
  548.           type;             // this must be ULONG not UWORD!
  549.     TEXT  pathname[VLONGFIELD + 1];
  550. };
  551.